package com.ht.api.open.paging.impl;

import com.ht.api.open.paging.IPaging;

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

/**
 * 第三方开放平台的分页器：企业微信
 * @author asq
 * @createTime 2024年12月18日 09:47:42
 */
public class QywxPaging implements IPaging{

	@Override
	public JSONObject getPaging(JSONObject data, int limit, String limitName) {
		JSONObject page = JSONUtil.createObj();
		page.set(limitName, limit);
		String preCursor = getPreCursor(data);
		if (preCursor != null) {
			page.set("cursor", preCursor);
		}
		
		return page;
	}

	@Override
	public boolean hasNext(JSONObject data, String dataPath, int limit) {
		if (data != null) {
			JSONArray dataArr = data.getByPath(dataPath, JSONArray.class);
			return dataArr != null && dataArr.size() == limit;
		}
		return true;
	}

	/**
	 * 获取分页游标
	 * @param data 三方接口返回的查询数据
	 * @return
	 */
	private String getPreCursor(JSONObject data) {
		if (data != null) {
			return data.getStr("next_cursor");
		}
		return null;
	}
}
